{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 任务说明\n", "\n", "- 任务主题:论文作者统计,统计所有论文作者出现评率Top10的姓名;\n", "- 任务内容:论文作者的统计、使用 **Pandas** 读取数据并使用字符串操作;\n", "- 任务成果:学习 **Pandas** 的字符串操作;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 数据处理步骤\n", "\n", "在原始arxiv数据集中论文作者`authors`字段是一个字符串格式,其中每个作者使用逗号进行分隔分,所以我们我们首先需要完成以下步骤:\n", "\n", "- 使用逗号对作者进行切分;\n", "- 剔除单个作者中非常规的字符;\n", "\n", "具体操作可以参考以下例子:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "C. Bal\\\\'azs, E. L. Berger, P. M. Nadolsky, C.-P. Yuan\n", "\n", "# 切分为,其中\\\\为转义符\n", "\n", "C. Ba'lazs\n", "E. L. Berger\n", "P. M. Nadolsky\n", "C.-P. Yuan\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "当然在原始数据集中`authors_parsed`字段已经帮我们处理好了作者信息,可以直接使用该字段完成后续统计。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 字符串处理\n", "\n", "在Python中字符串是最常用的数据类型,可以使用引号('或\")来创建字符串。Python中所有的字符都使用字符串存储,可以使用方括号来截取字符串,如下实例:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:19:04.356288Z", "start_time": "2021-01-02T07:19:04.347392Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "var1[-10:]: Datawhale!\n", "var2[1:5]: Python \n" ] } ], "source": [ "var1 = 'Hello Datawhale!'\n", "var2 = \"Python Everwhere!\"\n", " \n", "print(\"var1[-10:]: \", var1[-10:])\n", "print(\"var2[1:5]: \", var2[0:7])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "同时在Python中还支持转义符:\n", "\n", "| \\(在行尾时) | 续行符 |\n", "| ----------- | ---------- |\n", "| \\\\ | 反斜杠符号 |\n", "| \\' | 单引号 |\n", "| \\\" | 双引号 |\n", "| \\n | 换行 |\n", "| \\t | 横向制表符 |\n", "| \\r | 回车 |\n", "\n", "Python中还内置了很多内置函数,非常方便使用:\n", "\n", "| **方法** | **描述** |\n", "| :------------------ | :----------------------------------------------------------- |\n", "| string.capitalize() | 把字符串的第一个字符大写 |\n", "| string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False |\n", "| string.title() | 返回\"标题化\"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |\n", "| string.upper() | 转换 string 中的小写字母为大写 |\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 具体代码实现以及讲解" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 数据读取" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:23:53.184385Z", "start_time": "2021-01-02T07:23:52.532581Z" } }, "outputs": [], "source": [ "# 导入所需的package\n", "import seaborn as sns #用于画图\n", "from bs4 import BeautifulSoup #用于爬取arxiv的数据\n", "import re #用于正则表达式,匹配字符串的模式\n", "import requests #用于网络连接,发送网络请求,使用域名获取对应信息\n", "import json #读取数据,我们的数据为json格式的\n", "import pandas as pd #数据处理,数据分析\n", "import matplotlib.pyplot as plt #画图工具" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:24:24.787957Z", "start_time": "2021-01-02T07:24:23.153747Z" } }, "outputs": [], "source": [ "def readArxivFile(path, columns=['id', 'submitter', 'authors', 'title', 'comments', 'journal-ref', 'doi',\n", " 'report-no', 'categories', 'license', 'abstract', 'versions',\n", " 'update_date', 'authors_parsed'], count=None):\n", " '''\n", " 定义读取文件的函数\n", " path: 文件路径\n", " columns: 需要选择的列\n", " count: 读取行数\n", " '''\n", " \n", " data = []\n", " with open(path, 'r') as f: \n", " for idx, line in enumerate(f): \n", " if idx == count:\n", " break\n", " \n", " d = json.loads(line)\n", " d = {col : d[col] for col in columns}\n", " data.append(d)\n", "\n", " data = pd.DataFrame(data)\n", " return data\n", "\n", "data = readArxivFile('arxiv-metadata-oai-snapshot.json', \n", " ['id', 'authors', 'categories', 'authors_parsed'],\n", " 100000)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "为了方便处理数据,我们只选择了三个字段进行读取。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 数据统计\n", "\n", "接下来我们将完成以下统计操作:\n", "\n", "- 统计所有作者姓名出现频率的Top10;\n", "- 统计所有作者姓(姓名最后一个单词)的出现频率的Top10;\n", "- 统计所有作者姓第一个字符的评率;\n", "\n", "为了节约计算时间,下面选择部分类别下的论文进行处理:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:24:24.816940Z", "start_time": "2021-01-02T07:24:24.789818Z" } }, "outputs": [], "source": [ "# 选择类别为cs.CV下面的论文\n", "data2 = data[data['categories'].apply(lambda x: 'cs.CV' in x)]\n", "\n", "# 拼接所有作者\n", "all_authors = sum(data2['authors_parsed'], [])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "处理完成后`all_authors`变成了所有一个list,其中每个元素为一个作者的姓名。我们首先来完成姓名频率的统计。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:24:25.929001Z", "start_time": "2021-01-02T07:24:25.809119Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Count')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 拼接所有的作者\n", "authors_names = [' '.join(x) for x in all_authors]\n", "authors_names = pd.DataFrame(authors_names)\n", "\n", "# 根据作者频率绘制直方图\n", "plt.figure(figsize=(10, 6))\n", "authors_names[0].value_counts().head(10).plot(kind='barh')\n", "\n", "# 修改图配置\n", "names = authors_names[0].value_counts().index.values[:10]\n", "_ = plt.yticks(range(0, len(names)), names)\n", "plt.ylabel('Author')\n", "plt.xlabel('Count')" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:24:08.468797Z", "start_time": "2021-01-02T07:24:08.458964Z" } }, "source": [ "接下来统计姓名姓,也就是`authors_parsed`字段中作者第一个单词:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-01-02T07:24:42.314923Z", "start_time": "2021-01-02T07:24:42.199767Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Count')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "authors_lastnames = [x[0] for x in all_authors]\n", "authors_lastnames = pd.DataFrame(authors_lastnames)\n", "\n", "plt.figure(figsize=(10, 6))\n", "authors_lastnames[0].value_counts().head(10).plot(kind='barh')\n", "\n", "names = authors_lastnames[0].value_counts().index.values[:10]\n", "_ = plt.yticks(range(0, len(names)), names)\n", "plt.ylabel('Author')\n", "plt.xlabel('Count')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "绘制得到的结果,从结果看出这些都是华人或者中国姓氏~\n", "\n", "\n", "统计所有作者姓第一个字符的评率,这个流程与上述的类似,同学们可以自行尝试。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }